# Copyright lowRISC contributors (OpenTitan project).
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

test_suite(
    name = "sv1_tests",
    tests = [
        "//sw/device/silicon_creator/rom/e2e/jtag_inject:rom_e2e_openocd_debug_test",
        "//sw/device/tests:lc_ctrl_otp_hw_cfg0_test",
        "//sw/device/tests:pwrmgr_smoketest",
        "//sw/device/tests:rstmgr_cpu_info_test",
        "//sw/device/tests:rv_core_ibex_epmp_test_functest",
        "//sw/device/tests:rv_core_ibex_isa_test",
        "//sw/device/tests:rv_core_ibex_mem_test",
        "//sw/device/tests:rv_core_ibex_rnd_test",
    ],
)

test_suite(
    name = "sv2_tests",
    tests = [
        "//sw/device/silicon_creator/lib:otbn_boot_services_functest",
        "//sw/device/tests:aes_smoketest",
        "//sw/device/tests:aon_timer_irq_test",
        "//sw/device/tests:aon_timer_smoketest",
        "//sw/device/tests:aon_timer_wdog_bite_reset_test",
        "//sw/device/tests:ast_clk_outs_test",
        "//sw/device/tests:clkmgr_external_clk_src_for_sw_fast_test",
        "//sw/device/tests:clkmgr_external_clk_src_for_sw_slow_test",
        "//sw/device/tests:clkmgr_smoketest",
        "//sw/device/tests:csrng_smoketest",
        "//sw/device/tests:entropy_src_csrng_test",
        "//sw/device/tests:entropy_src_smoketest",
        "//sw/device/tests:gpio_pinmux_test",
        "//sw/device/tests:gpio_smoketest",
        "//sw/device/tests:hmac_enc_test",
        "//sw/device/tests:hmac_smoketest",
        "//sw/device/tests:i2c_target_test",
        "//sw/device/tests:keymgr_sideload_otbn_simple_test",
        "//sw/device/tests:keymgr_sideload_otbn_test",
        "//sw/device/tests:kmac_mode_kmac_test",
        "//sw/device/tests:kmac_smoketest",
        "//sw/device/tests:otbn_smoketest",
        "//sw/device/tests:otp_ctrl_smoketest",
        "//sw/device/tests:pattgen_ios_test",
        "//sw/device/tests:pmp_smoketest_napot",
        "//sw/device/tests:pmp_smoketest_tor",
        "//sw/device/tests:power_virus_systemtest",
        "//sw/device/tests:pwrmgr_smoketest",
        "//sw/device/tests:pwrmgr_usbdev_smoketest",
        "//sw/device/tests:pwrmgr_wdog_reset_reqs_test",
        "//sw/device/tests:rstmgr_smoketest",
        "//sw/device/tests:rv_core_ibex_nmi_irq_test",
        "//sw/device/tests:rv_dm_jtag_tap_sel",
        "//sw/device/tests:rv_dm_lc_disabled_jtag",
        "//sw/device/tests:rv_dm_lc_disabled_tl",
        "//sw/device/tests:rv_dm_ndm_reset_req",
        "//sw/device/tests:rv_plic_smoketest",
        "//sw/device/tests:rv_timer_smoketest",
        "//sw/device/tests:sleep_pwm_pulses_test",
        "//sw/device/tests:spi_host_smoketest",
        "//sw/device/tests:spi_host_winbond_flash_test",
        "//sw/device/tests:sram_ctrl_smoketest",
        "//sw/device/tests:uart_smoketest",
        "//sw/device/tests:uart_tx_rx_test",
        "//sw/device/tests/autogen:plic_all_irqs_test_0",
        "//sw/device/tests/autogen:plic_all_irqs_test_10",
        "//sw/device/tests/autogen:plic_all_irqs_test_20",
        "//sw/device/tests/crypto:aes_kwp_functest",
        "//sw/device/tests/crypto:aes_kwp_kat_functest",
        "//sw/device/tests/crypto:ecdh_p256_sideload_functest",
        "//sw/device/tests/crypto:ecdsa_p256_sideload_functest",
        "//sw/device/tests/pmod:i2c_host_eeprom_test",
        "//sw/device/tests/pmod:spi_host_macronix_flash_test",
    ],
)

test_suite(
    name = "sv3_tests",
    tests = [
        "//sw/device/silicon_creator/rom/e2e:rom_e2e_smoke",
        "//sw/device/tests:aes_entropy_test",
        "//sw/device/tests:aes_idle_test",
        "//sw/device/tests:alert_handler_lpg_clkoff_test",
        "//sw/device/tests:alert_handler_lpg_reset_toggle_test",
        "//sw/device/tests:alert_handler_lpg_sleep_mode_pings_test",
        "//sw/device/tests:alert_handler_ping_ok_test",
        "//sw/device/tests:alert_handler_ping_timeout_test",
        "//sw/device/tests:alert_handler_reverse_ping_in_deep_sleep_test",
        "//sw/device/tests:aon_timer_sleep_wdog_sleep_pause_test",
        "//sw/device/tests:aon_timer_wdog_bite_reset_test",
        "//sw/device/tests:aon_timer_wdog_lc_escalate_test",
        "//sw/device/tests:ast_clk_outs_test",
        "//sw/device/tests:chip_power_idle_load",
        "//sw/device/tests:clkmgr_jitter_frequency_test",
        "//sw/device/tests:clkmgr_jitter_test",
        "//sw/device/tests:clkmgr_off_aes_trans_test",
        "//sw/device/tests:clkmgr_off_hmac_trans_test",
        "//sw/device/tests:clkmgr_off_kmac_trans_test",
        "//sw/device/tests:clkmgr_off_otbn_trans_test",
        "//sw/device/tests:clkmgr_off_peri_test",
        "//sw/device/tests:clkmgr_reset_frequency_test",
        "//sw/device/tests:clkmgr_sleep_frequency_test",
        "//sw/device/tests:csrng_edn_concurrency_test",
        "//sw/device/tests:csrng_kat_test",
        "//sw/device/tests:edn_auto_mode",
        "//sw/device/tests:edn_boot_mode",
        "//sw/device/tests:edn_kat",
        "//sw/device/tests:edn_sw_mode",
        "//sw/device/tests:entropy_src_ast_rng_req_test",
        "//sw/device/tests:entropy_src_edn_reqs_test",
        "//sw/device/tests:entropy_src_fw_observe_many_contiguous_test",
        "//sw/device/tests:entropy_src_fw_override_test",
        "//sw/device/tests:entropy_src_fw_ovr_test",
        "//sw/device/tests:entropy_src_kat_test",
        "//sw/device/tests:flash_ctrl_clock_freqs_test",
        "//sw/device/tests:flash_ctrl_idle_low_power_test",
        "//sw/device/tests:flash_ctrl_info_access_lc_states",
        "//sw/device/tests:flash_ctrl_info_access_lc_states_personalized",
        "//sw/device/tests:flash_ctrl_mem_protection_test",
        "//sw/device/tests:flash_ctrl_ops_test",
        "//sw/device/tests:flash_ctrl_rma_test",
        "//sw/device/tests:flash_ctrl_test",
        "//sw/device/tests:flash_ctrl_write_clear_test",
        "//sw/device/tests:gpio_intr_test",
        "//sw/device/tests:hmac_enc_idle_test",
        "//sw/device/tests:hmac_secure_wipe_test",
        "//sw/device/tests:i2c_host_override_test",
        "//sw/device/tests:i2c_target_test",
        "//sw/device/tests:keymgr_key_derivation_test",
        "//sw/device/tests:keymgr_sideload_aes_test",
        "//sw/device/tests:keymgr_sideload_kmac_test",
        "//sw/device/tests:kmac_endianess_test",
        "//sw/device/tests:kmac_idle_test",
        "//sw/device/tests:kmac_kmac_key_sideload_test",
        "//sw/device/tests:kmac_mode_cshake_test",
        "//sw/device/tests:otbn_ecdsa_op_irq_test",
        "//sw/device/tests:otbn_irq_test",
        "//sw/device/tests:otbn_isa_test",
        "//sw/device/tests:otbn_mem_scramble_test",
        "//sw/device/tests:otbn_randomness_test",
        "//sw/device/tests:otbn_rsa_test",
        "//sw/device/tests:otbn_smoketest",
        "//sw/device/tests:plic_sw_irq_test",
        "//sw/device/tests:pwrmgr_all_reset_reqs_test",
        "//sw/device/tests:pwrmgr_deep_sleep_all_reset_reqs_test",
        "//sw/device/tests:pwrmgr_deep_sleep_all_wake_ups",
        "//sw/device/tests:pwrmgr_deep_sleep_por_reset_test",
        "//sw/device/tests:pwrmgr_normal_sleep_all_reset_reqs_test",
        "//sw/device/tests:pwrmgr_normal_sleep_all_wake_ups",
        "//sw/device/tests:pwrmgr_normal_sleep_por_reset_test",
        "//sw/device/tests:pwrmgr_random_sleep_all_reset_reqs_test",
        "//sw/device/tests:pwrmgr_random_sleep_all_wake_ups",
        "//sw/device/tests:pwrmgr_sleep_disabled_test",
        "//sw/device/tests:pwrmgr_sleep_wake_5_bug_test",
        "//sw/device/tests:pwrmgr_usb_clk_disabled_when_active_test",
        "//sw/device/tests:pwrmgr_wdog_reset_reqs_test",
        "//sw/device/tests:rstmgr_alert_info_test",
        "//sw/device/tests:rstmgr_sw_req_test",
        "//sw/device/tests:rstmgr_sw_rst_ctrl_test",
        "//sw/device/tests:rv_core_ibex_address_translation_test",
        "//sw/device/tests:rv_core_ibex_icache_invalidate_test",
        "//sw/device/tests:rv_dm_access_after_hw_reset",
        "//sw/device/tests:rv_dm_access_after_wakeup",
        "//sw/device/tests:rv_dm_control_status",
        "//sw/device/tests:rv_dm_csr_rw",
        "//sw/device/tests:rv_dm_dtm",
        "//sw/device/tests:rv_dm_jtag",
        "//sw/device/tests:rv_dm_mem_access",
        "//sw/device/tests:rv_dm_ndm_reset_req_when_cpu_halted",
        "//sw/device/tests:rv_timer_smoketest",
        "//sw/device/tests:rv_timer_systick_test",
        "//sw/device/tests:sensor_ctrl_alert_test",
        "//sw/device/tests:sensor_ctrl_wakeup_test",
        "//sw/device/tests:sleep_pin_mio_dio_val_test",
        "//sw/device/tests:sleep_pin_retention_test",
        "//sw/device/tests:spi_device_flash_smoketest",
        "//sw/device/tests:spi_device_sleep_test",
        "//sw/device/tests:spi_device_tpm_tx_rx_test",
        "//sw/device/tests:spi_host_config_test",
        "//sw/device/tests:spi_host_irq_test",
        "//sw/device/tests:spi_passthru_test",
        "//sw/device/tests:sram_ctrl_execution_test",
        "//sw/device/tests:sram_ctrl_lc_escalation_test",
        "//sw/device/tests:sram_ctrl_memset_test",
        "//sw/device/tests:sram_ctrl_readback_test",
        "//sw/device/tests:sram_ctrl_scrambled_access_test",
        "//sw/device/tests:sram_ctrl_sleep_sram_ret_contents_no_scramble_test",
        "//sw/device/tests:sram_ctrl_sleep_sram_ret_contents_scramble_test",
        "//sw/device/tests:sram_ctrl_subword_access_test",
        "//sw/device/tests:sysrst_ctrl_ec_rst_l_test",
        "//sw/device/tests:sysrst_ctrl_in_irq_test",
        "//sw/device/tests:sysrst_ctrl_inputs_test",
        "//sw/device/tests:sysrst_ctrl_outputs_test",
        "//sw/device/tests:sysrst_ctrl_reset_test",
        "//sw/device/tests:sysrst_ctrl_ulp_z3_wakeup_test",
        "//sw/device/tests:uart_baud_rate_test",
        "//sw/device/tests:uart_loopback_test",
        "//sw/device/tests:uart_parity_break_test",
        "//sw/device/tests:usbdev_aon_pullup_test",
        "//sw/device/tests:usbdev_aon_wake_disconnect_test",
        "//sw/device/tests:usbdev_aon_wake_reset_test",
        "//sw/device/tests:usbdev_config_host_test",
        "//sw/device/tests:usbdev_iso_test",
        "//sw/device/tests:usbdev_mixed_test",
        "//sw/device/tests:usbdev_pincfg_test",
        "//sw/device/tests:usbdev_pullup_test",
        "//sw/device/tests:usbdev_setuprx_test",
        "//sw/device/tests:usbdev_stream_test",
        "//sw/device/tests:usbdev_test",
        "//sw/device/tests:usbdev_vbus_test",
        "//sw/device/tests/autogen:alert_test",
        "//sw/device/tests/autogen:plic_all_irqs_test_0",
        "//sw/device/tests/crypto:aes_functest",
        "//sw/device/tests/crypto:aes_kwp_sideload_functest",
        "//sw/device/tests/crypto:aes_sideload_functest",
        "//sw/device/tests/crypto:ecdh_p256_sideload_functest",
        "//sw/device/tests/crypto:ecdh_p384_sideload_functest",
        "//sw/device/tests/crypto:ecdsa_p256_sideload_functest",
        "//sw/device/tests/crypto:ecdsa_p384_sideload_functest",
        "//sw/device/tests/crypto:hmac_functest",
        "//sw/device/tests/crypto:hmac_multistream_functest",
        "//sw/device/tests/crypto:hmac_sha256_functest",
        "//sw/device/tests/crypto:hmac_sha384_functest",
        "//sw/device/tests/crypto:hmac_sha512_functest",
        "//sw/device/tests/crypto:kmac_functest_hardcoded",
        "//sw/device/tests/crypto:kmac_sideload_functest_hardcoded",
        "//sw/device/tests/crypto/cryptotest:hmac_sha256_kat",
        "//sw/device/tests/crypto/cryptotest:hmac_sha384_kat",
        "//sw/device/tests/crypto/cryptotest:hmac_sha512_kat",
        "//sw/device/tests/crypto/cryptotest:kmac_kat",
        "//sw/device/tests/crypto/cryptotest:sha3_256_kat",
        "//sw/device/tests/crypto/cryptotest:sha3_384_kat",
        "//sw/device/tests/crypto/cryptotest:sha3_512_kat",
        "//sw/device/tests/crypto/cryptotest:shake128_kat",
        "//sw/device/tests/crypto/cryptotest:shake256_kat",
        "//sw/device/tests/pmod:i2c_host_clock_stretching_test",
        "//sw/device/tests/pmod:i2c_host_fram_test",
    ],
)

test_suite(
    name = "sv4_tests",
    tests = [
        "//third_party/coremark/top_earlgrey:coremark_test",
    ],
)

test_suite(
    name = "regression_test_suite",
    tests = [
        # Silicon validation test suites.
        ":sv1_tests",
        ":sv2_tests",
        ":sv3_tests",
        ":sv4_tests",
        # Crypto test suites.
        "//sw/device/tests/crypto:cryptolib_test_suite",
    ],
)
